package priv.yangguolong.Chapter04;
import java.util.*;
public class ConstructorTest {
public static void main(String[] args) {
	//fill the staff array with three Employee objects 
	Employee02[] staff = new Employee02[3];
	
	staff[0] = new Employee02("Harry",40000);
	staff[1] = new Employee02(900000);
	staff[2] = new Employee02();
	
	//print out information about all Employee objects
	for(Employee02 e:staff)
		System.out.println("name="+e.getName()+",id"+e.getId()+
				",salary"+e.getSalary());
}
}
class Employee02 {
	private static int nextId;
	private int id;
	private String name ="" ;//instance field initialization
	private double salary;
	
	//salary initialization block
	static {
		Random generator = new Random();
		//set nextId to a random number between 0 and 9999
		nextId = generator.nextInt(10000);
	}
	//object initialization block
	{
	    id = nextId;
	    nextId++;
	}
	
	//three overloaded constructors
	public Employee02(String n,double s) {
		name = n;
		salary = s;
	}
	public Employee02(double s) {
		//calls the Emoploye02(String,double) constructor
		this("Employ #"+nextId,s);
	}
	//the default constructor 
	public Employee02() {
		//name initialized to -- save above
		//salary not explicitly set--initialized to 0 
		///id initialized in initialized block
	}
	public String getName () {
		return name;
		
	}
	public double getSalary() {
		return salary;
	}
	public int getId() {
		return id;
	}
}

